(define a
  (local-syntax or (lambda (exp env)
		     (list (syntax-quote let)
			   (list
			    (list (syntax-quote tmp)
				  (syn-car (syn-cdr exp))))
			   (list (syntax-quote if)
				 (syntax-quote tmp)
				 (syntax-quote tmp)
				 (syn-car (syn-cdr (syn-cdr exp))))))
		(begin
		  (print (or #f 1))
		  (print (or 2 3))
		  (print (or (or #f #f) 4))
		  (print (or #f (or #f 5)))
		  (print (or (or #f #t) 4))
		  (print (or #f (or #t 5)))
		  (let ((tmp 6))
		    (print (or #f tmp))))))
